Model recovery

Parameter recovery

LS0tCnRpdGxlOiAiVm9DIEFuYWx5c2VzIFBhcnQgNDogUmVjb3ZlcmFiaWxpdHkiCmRhdGU6IDEvOC8yNApvdXRwdXQ6CiAgICBodG1sX2RvY3VtZW50OgogICAgICAgIGRmX3ByaW50OiAncGFnZWQnCiAgICAgICAgdG9jOiB0cnVlCiAgICAgICAgdG9jX2Zsb2F0OgogICAgICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgICAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgICAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlCiAgICAgICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCi0tLQpgYGB7ciBjaHVuayBzZXR0aW5ncywgaW5jbHVkZSA9IEZBTFNFfQojIHNldCBjaHVuayBzZXR0aW5ncwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KGRwaT02MDApCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gcnByb2pyb290OjpmaW5kX3JzdHVkaW9fcm9vdF9maWxlKCkpCmBgYAogICAgICAgICAgICAgICAgICAgICAgCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQojIGxpc3QgYWxsIHBhY2thZ2VzIHJlcXVpcmVkIGZvciB0aGUgYW5hbHlzaXMKbGlzdC5vZi5wYWNrYWdlcyA8LSBjKCJ0aWR5dmVyc2UiLCAibGF0ZXgyZXhwIiwgInBhdGNod29yayIsICJnZ3B1YnIiKQoKIyBjaGVjayBpZiBhbGwgcGFja2FnZXMgYXJlIGluc3RhbGxlZCwgaWYgbm90LCBpbnN0YWxsIHRoZW0uCm5ldy5wYWNrYWdlcyA8LSBsaXN0Lm9mLnBhY2thZ2VzWyEobGlzdC5vZi5wYWNrYWdlcyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpWywiUGFja2FnZSJdKV0KaWYobGVuZ3RoKG5ldy5wYWNrYWdlcykpIGluc3RhbGwucGFja2FnZXMobmV3LnBhY2thZ2VzKQoKIyBsb2FkIGFsbCBwYWNrYWdlcyAKbGFwcGx5KGxpc3Qub2YucGFja2FnZXMsIGxpYnJhcnksIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkKCiMgYWRkIHRoZW1lIGZvciBwbG90dGluZwp2b2NfdGhlbWUgPC0gZnVuY3Rpb24gKCkgewogIHRoZW1lKAogICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9yZWN0KGZpbGwgPSAidHJhbnNwYXJlbnQiLCBjb2xvcj0iZ3JheTc1IiksCiAgICBwYW5lbC5iYWNrZ3JvdW5kICA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICBsZWdlbmQuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJ0cmFuc3BhcmVudCIsIGNvbG91cj1OQSksCiAgICBsZWdlbmQua2V5ID0gZWxlbWVudF9yZWN0KGZpbGw9InRyYW5zcGFyZW50IiwgY29sb3VyPU5BKSwKICAgIGxpbmUgPSBlbGVtZW50X2JsYW5rKCksCiAgICBheGlzLnRpY2tzID0gZWxlbWVudF9saW5lKGNvbG9yPSJncmF5NzUiKSwKICAgIHRleHQ9ZWxlbWVudF90ZXh0KGZhbWlseT0iQXZlbmlyIiksCiAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwKICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE1KSwKICAgIHRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNSksCiAgICBzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLAogICAgc3RyaXAudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTEyKQogICkKfQoKY29sb3IxID0gIiMwMGI0ZDgiCmNvbG9yMiA9ICIjMDA3N2I2Igpjb2xvcjMgPSAiIzAzMDQ1ZSIKCmBgYAoKIyBNb2RlbCByZWNvdmVyeQpgYGB7ciBsb2FkIG1vZGVsIHJlY292ZXJhYmlsaXR5IHJlc3VsdHN9Cgptb2RlbF9yZWNvdiA8LSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2FpY19yZWNvdmVyeV8xNm1vZGVscy5jc3YiKSAlPiUKICAgIHBpdm90X2xvbmdlcihjb2xzID0gb25lQWxwaGFfb25lQmV0YTpmb3VyQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cywKICAgICAgICAgICAgICAgICBuYW1lc190byA9ICJzaW1fbW9kZWwiLAogICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJwcm9wIikKCgptb2RlbF9yZWNvdiRzaW1fbW9kZWwgPC0gZmFjdG9yKG1vZGVsX3JlY292JHNpbV9tb2RlbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIm9uZUFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV9vbmVCZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhVmFsZW5jZWRfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhVmFsZW5jZWRfdHdvQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV9vbmVCZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyhUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJG9uZVxcYWxwaGFcXF9vbmVcXGJldGEkX0FCJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YSRfQUInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfb25lXFxiZXRhJF9BQicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF90d29cXGJldGEkX0FCJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJF9BQicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b1ZhbGVuY2VkXFxhbHBoYVxcX3R3b1xcYmV0YSRfQUInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX29uZVxcYmV0YSRfQUInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YSRfQUInKSkpCgptb2RlbF9yZWNvdiRSZWNvdmVyZWRNb2RlbCA8LSBmYWN0b3IobW9kZWxfcmVjb3YkUmVjb3ZlcmVkTW9kZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJvbmVBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoVGVYKCckb25lXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJG9uZVxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvQ2hvaWNlXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b1ZhbGVuY2VkXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b1ZhbGVuY2VkXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJGZvdXJcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJF9BQicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJG9uZVxcYWxwaGFcXF90d29cXGJldGEkX0FCJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvQ2hvaWNlXFxhbHBoYVxcX29uZVxcYmV0YSRfQUInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJF9BQicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b1ZhbGVuY2VkXFxhbHBoYVxcX29uZVxcYmV0YSRfQUInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF90d29cXGJldGEkX0FCJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEkX0FCJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF90d29cXGJldGEkX0FCJykpKQoKYGBgCgpgYGB7ciBBSUMgY29uZnVzaW9uIG1hdHJpeCwgZmlnLndpZHRoID0gMTIsIGZpZy5oZWlnaHQgPSA4LCB1bml0cyA9ICJpbiJ9CgphaWNfY29uZnVzaW9uX3Bsb3QgPC0gZ2dwbG90KG1vZGVsX3JlY292LCBhZXMoeCA9IHNpbV9tb2RlbCwgeSA9IFJlY292ZXJlZE1vZGVsKSkgKwogICAgZ2VvbV90aWxlKGFlcyhmaWxsID0gcHJvcCkpICsKICAgIGdlb21fdGV4dChhZXMobGFiZWw9cm91bmQocHJvcCwgMikpLCBjb2xvciA9ICJ3aGl0ZSIpICsKICAgIHZvY190aGVtZSgpICsKICAgIHhsYWIoIlNpbXVsYXRlZCBNb2RlbCIpICsKICAgIHlsYWIoIkZpdHRlZCBNb2RlbCIpICsKICAgIHNjYWxlX3lfZGlzY3JldGUobGFiZWxzID0gcGFyc2UodGV4dCA9IGxldmVscyhtb2RlbF9yZWNvdiRSZWNvdmVyZWRNb2RlbCkpKSArCiAgICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IHBhcnNlKHRleHQgPSBsZXZlbHMobW9kZWxfcmVjb3Ykc2ltX21vZGVsKSkpICsKICAgIHNjYWxlX2ZpbGxfY29udGludW91cyh0eXBlID0gImdyYWRpZW50IiwgbmFtZSA9ICJwKGZpdCBtb2RlbCB8IHNpbSBtb2RlbCkiKSArCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDc1LCBoanVzdCA9IDEpKQphaWNfY29uZnVzaW9uX3Bsb3QgICAKICAgIApgYGAKCmBgYHtyIEFJQyBpbnZlcnNpb24gbWF0cml4LCBmaWcud2lkdGggPSAxMiwgZmlnLmhlaWdodCA9IDgsIHVuaXRzID0gImluIn0KCiNkZXRlcm1pbmUgdGhlIHRvdGFsIG51bWJlciBvZiBwYXJ0aWNpcGFudHMgYmVzdC1maXQgYnkgYSBnaXZlbiBtb2RlbApwcm9wX3N1bXMgPC0gbW9kZWxfcmVjb3YgJT4lCiAgICBncm91cF9ieShSZWNvdmVyZWRNb2RlbCkgJT4lCiAgICBzdW1tYXJpemUocHJvcFN1bSA9IHN1bShwcm9wKSkKCnRlbXAgPC0gZnVsbF9qb2luKG1vZGVsX3JlY292LCBwcm9wX3N1bXMsIGJ5ID0gYygiUmVjb3ZlcmVkTW9kZWwiKSkKCiNkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwYXJ0aWNpcGFudHMgYmVzdC1maXQgYnkgYSBnaXZlbiBtb2RlbCwgZ2VuZXJhdGVkIGJ5IHRoYXQgbW9kZWwKdGVtcCRpbnZlcnNpb25Qcm9wIDwtIHRlbXAkcHJvcCAvIHRlbXAkcHJvcFN1bQoKYWljX2ludmVyc2lvbl9wbG90IDwtIGdncGxvdCh0ZW1wLCBhZXMoeCA9IHNpbV9tb2RlbCwgeSA9IFJlY292ZXJlZE1vZGVsKSkgKwogICAgZ2VvbV90aWxlKGFlcyhmaWxsID0gaW52ZXJzaW9uUHJvcCkpICsKICAgIGdlb21fdGV4dChhZXMobGFiZWw9cm91bmQoaW52ZXJzaW9uUHJvcCwgMikpLCBjb2xvciA9ICJ3aGl0ZSIpICsKICAgIHZvY190aGVtZSgpICsKICAgIHhsYWIoIlNpbXVsYXRlZCBNb2RlbCIpICsKICAgIHlsYWIoIkZpdHRlZCBNb2RlbCIpICsKICAgIHNjYWxlX3lfZGlzY3JldGUobGFiZWxzID0gcGFyc2UodGV4dCA9IGxldmVscyhtb2RlbF9yZWNvdiRSZWNvdmVyZWRNb2RlbCkpKSArCiAgICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IHBhcnNlKHRleHQgPSBsZXZlbHMobW9kZWxfcmVjb3Ykc2ltX21vZGVsKSkpICsKICAgIHNjYWxlX2ZpbGxfY29udGludW91cyh0eXBlID0gImdyYWRpZW50IiwgbmFtZSA9ICJwKHNpbSBtb2RlbCB8IGZpdCBtb2RlbCkiKSArCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDc1LCBoanVzdCA9IDEpKQphaWNfaW52ZXJzaW9uX3Bsb3QgICAKICAgIApgYGAKCmBgYHtyIGNvbWJpbmVkIGNvbmZ1c2lvbiBpbnZlcnNpb24sIGZpZy53aWR0aCA9IDI0LCBmaWcuaGVpZ2h0ID0gNy41LCB1bml0cyA9ICJpbiJ9CmFpY19yZWNvdiA9IGFpY19jb25mdXNpb25fcGxvdCArIGFpY19pbnZlcnNpb25fcGxvdAphaWNfcmVjb3YKYGBgCgojIFBhcmFtZXRlciByZWNvdmVyeSAKYGBge3IgcGFyYW1ldGVyIHJlY292ZXJ5fQoKc2ltX3BhcmFtcyA8LSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2ZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzX3NpbV9wYXJhbXMuY3N2IikgJT4lCiAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInNpbUlEIikgJT4lCiAgICBwaXZvdF9sb25nZXIoY29scyA9IGFscGhhQ2hvaWNlUG9zOmFnZW5jeUJvbnVzLAogICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gInBhcmFtIiwKICAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAic2ltX3ZhbCIpCgoKZml0X3BhcmFtcyA8LSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2ZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzX2ZpdF9wYXJhbXMuY3N2IikgJT4lCiAgICAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJzaW1JRCIpICU+JQogICAgICBwaXZvdF9sb25nZXIoY29scyA9IGFscGhhQ2hvaWNlUG9zOmFnZW5jeUJvbnVzLAogICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gInBhcmFtIiwKICAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZml0X3ZhbCIpCgojY29tYmluZQpwYXJhbV9yZWNvdiA8LSBmdWxsX2pvaW4oc2ltX3BhcmFtcywgZml0X3BhcmFtcywgYnkgPSBjKCJwYXJhbSIsICJzaW1JRCIpKQoKcGFyYW1fcmVjb3YkcGFyYW0gPC0gZmFjdG9yKHBhcmFtX3JlY292JHBhcmFtLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoImFscGhhQ2hvaWNlUG9zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhQ2hvaWNlTmVnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhQ29tcFBvcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYUNvbXBOZWciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0YUFnZW5jeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZXRhQmFuZGl0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFnZW5jeUJvbnVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKFRlWCgiJFxcYWxwaGFfe2Nob2ljZV8rfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYWxwaGFfe2Nob2ljZV8tfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYWxwaGFfe2NvbXBfK30kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGFscGhhX3tjb21wXy19JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxiZXRhX3thZ2VuY3l9JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxiZXRhX3ttYWNoaW5lfSQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFnZW5jeX5Cb251cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQoKYGBgCgoKYGBge3IgcGFyYW1ldGVyIHJlY292ZXJ5IHBsb3QsIGZpZy5oZWlnaHQgPSA4LCBmaWcud2lkdGggPSAxMn0KCnBhcmFtX3JlY292X3Bsb3QgPC0gZ2dwbG90KHBhcmFtX3JlY292LCBhZXMoeCA9IHNpbV92YWwsIHkgPSBmaXRfdmFsKSkgKwogICAgZmFjZXRfd3JhcCh+cGFyYW0sIHNjYWxlcyA9ICJmcmVlIiwgbGFiZWxsZXIgPSBsYWJlbF9wYXJzZWQsIG5yb3cgPSAyKSArCiAgICBnZW9tX3BvaW50KGNvbG9yID0gY29sb3IxLCAgYWxwaGEgPSAuMywgc2l6ZSA9IC41KSArCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBjb2xvciA9IGNvbG9yMiwgZmlsbCA9IGNvbG9yMikgKwogICAgc3RhdF9jb3IoYWVzKGxhYmVsID0gLi5yLmxhYmVsLi4pLCBsYWJlbC55Lm5wYz0idG9wIiwgbGFiZWwueC5ucGMgPSAibGVmdCIsIG1ldGhvZCA9ICJwZWFyc29uIixzaXplPSA0KSArIAogICAgeGxhYigiU2ltdWxhdGVkIFZhbHVlIikgKwogICAgeWxhYigiRml0dGVkIFZhbHVlIikgKwogICAgdm9jX3RoZW1lKCkKcGFyYW1fcmVjb3ZfcGxvdCAgCgpgYGA=